#include <iostream>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>

using namespace std;

void myhandle(int signo)
{
	cout << "receive a signal:" << signo << endl;
	//exit(1);
}

int main(int argc,char* argv[])
{
	//signal(SIGINT,myhandle);  //捕捉信号，重置获取信号后的处理方式
	//signal(SIGQUIT,myhandle);
	// signal(SIGSTOP,myhandle);
	for(int i = 1;i <= 31;i++){
		signal(i,myhandle); // 1-31信号中只有19和9号信号不能被捕捉
		//ctrl + d 不属于信号
	}
	// cout << argc << endl;

	int cnt = 0;
	while(true){
		cout << "I am a crazy process:" << getpid() << endl;
		sleep(1);
		cnt++;
		if(cnt % 2 == 0){
			//raise(2);
			//kill(getpid(),2);
			// abort();
			kill(getpid(),6);//abort()函数接口实现与kill有区别
		}
	}


	return 0;
}